#ifndef _PROCESSORTEST_H_
#define _PROCESSORTEST_H_

#include <cppunit/Test.h>
#include <cppunit/TestAssert.h>
#include <cppunit/TestCaller.h>
#include <cppunit/TestFixture.h>
#include <cppunit/TestSuite.h>
#include <cppunit/Exception.h>
#include <cppunit/extensions/HelperMacros.h>

#include <cstdlib>

#include "processor.h"


class ProcessorTest : public CppUnit::TestFixture {

	CPPUNIT_TEST_SUITE( ProcessorTest );
	CPPUNIT_TEST(testGetName);	      
	CPPUNIT_TEST(testGetCpuSpeed);	      	
	CPPUNIT_TEST(testConstructorException);
	CPPUNIT_TEST(testGetCpuAvailable);	      		
	CPPUNIT_TEST(testGetType);	      			
	CPPUNIT_TEST(testIsPerformanceConstant);
	CPPUNIT_TEST(testIsBusy);
	CPPUNIT_TEST_SUITE_END();
	
	private:
		Resource *processorFixed;
		Resource *processorTrace;
			
	public:
		void setUp(); 
		
		/*Test Cases*/
		void testGetName();
		void testGetCpuSpeed();
		void testConstructorException();
		void testGetCpuAvailable();
		void testGetType();
		void testIsPerformanceConstant();
		void testIsBusy();
		/////////////
		
		void tearDown();
	
};

#endif //_PROCESSORTEST_H_
